SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE procedure [dbo].[SP_TCFINA_BANC_Q04]  
/*----------------------------------------------------*/      
/*---Empresa              : OFISIS S.A.            --*/
/*---Cliente              : OFISIS S.A.            --*/
/*---Sistema              : Tesoreria               --*/
/*---M«dulo               : Empresa                 --*/
/*---Programa             : Reporte Finaciamientos  --*/
/*---Nombre SP            : SP_TCFINA_BANC_Q04      --*/
/*---Desarrollado por     : Carlos Marquez Escobar  --*/
/*---Fecha Creaci«n       : 05/03/2005              --*/
/*---Base Datos           : Microsoft Sql Server    --*/
/*---Versi«n              : 8.0                     --*/
/*---Invoca a SP          :                         --*/
/*----------------------------------------------------*/
/*----------------------------------------------------*/
/*---Modificado 1 por     :                         --*/
/*---Fecha Modificaci«n   :                         --*/
/*---Detalle Modificaci«n :                         --*/
/*----------------------------------------------------*/
/*---Comentarios                                    --*/
/*---                                               --*/
/*---                                               --*/
/*----------------------------------------------------*/
/*----------------------------------------------------*/
/* Drop Proc SP_TCFINA_BANC_Q04      --*/        
/* Grant Execute On SP_TCFINA_BANC_Q04 To Public     --*/        
/*       
Create Table  #TWFILT_ERBH     
( CO_EMPR Varchar(02),    
 CO_BANC Varchar(03)  
  )       
      
Insert Into #TWFILT_ERBH Values ('01', 'CON')      
      
Declare      
@ISCO_EMPR  TD_VC_002,  
@ISAA_BNCO  TD_VC_004,  
@ISMM_BNCO  TD_VC_002,  
@IDFE_REPO  TD_DT_001,  
@ISST_DETA  TD_VC_001,  
@ISDE_OPCI_FILT TD_VC_001  
    
  Set @ISCO_EMPR = '01'      
  Set @ISAA_BNCO = '2006'      
  Set @ISMM_BNCO = '02'      
  Set @IDFE_REPO = '05/02/2006'      
  Set @ISST_DETA = 'A'      
  Set @ISDE_OPCI_FILT = 'S'      
      
Execute SP_TCFINA_BANC_Q04 @ISCO_EMPR, @ISAA_BNCO, @ISMM_BNCO, @IDFE_REPO, @ISST_DETA, @ISDE_OPCI_FILT  
  
 */      
/*----------------------------------------------------*/      
@ISCO_EMPR  TD_VC_002,  
@ISAA_BNCO  TD_VC_004,  
@ISMM_BNCO  TD_VC_002,  
@IDFE_REPO  TD_DT_001,  
@ISST_DETA  TD_VC_001,  
@ISDE_OPCI_FILT TD_VC_001  
      
AS        
    
Declare            
            
/* Declaro variables para Parametrizaciones */            
@VSCO_MONE_NACI TD_VC_003,      
@VSCO_MONE_EXTR TD_VC_003  
    
  --- Select Parametros ---   
  Select @VSCO_MONE_NACI = CO_MONE_DEFA, @VSCO_MONE_EXTR = CO_MONE_EXTR  
  From  TMPARA_TESO      
  Where CO_EMPR = @ISCO_EMPR  
  
  
if @ISST_DETA = 'A'    
 Select TTBANC_FINA.DE_NOMB_CORT  + Case TDBANC_FINA.ST_LINE_CCRE When 'S' Then ' *' Else '' End DE_TIPO_FINA , TTBANC_AGEN.DE_NOMB_SECT, TTBANC_AGEN.DE_DIRE_AGEN,  
   TTBANC_AGEN.NU_TEL1, TTBANC_AGEN.NU_TEL2,  
   TDBANC_FINA.CO_PROV,   
   TTTIPO_FINA.DE_TIPO_FINA,  
--   Case TDBANC_FINA.ST_LINE_CCRE When 'S' Then Round(TDBANC_FINA.IM_LINE_CRED,0)/1000 Else Round(TTTIFN_BANC.IM_LINE_CRED,0)/1000 End MO_LINE,  
   Case TDBANC_FINA.ST_LINE_CCRE When 'S' Then 0.00 Else Round(TTTIFN_BANC.IM_LINE_CRED,0)/1000 End MO_LINE,     
   Round(IsNull(TMRESU_FIBA.IM_FINA_PARC,0),0)/1000 MO_UTIL,  
   
   Case TDBANC_FINA.ST_LINE_CCRE When 'S' Then Round(( TDBANC_FINA.IM_LINE_CRED - IsNull(TMRESU_FINA.IM_FINA_TOTA,0)),0)/1000 Else Round((TTTIFN_BANC.IM_LINE_CRED - IsNull(TMRESU_FIBA.IM_FINA_PARC,0)),0)/1000 End MO_DISP,  
   Case TTTIFN_BANC.ST_LIBO When 'S' Then 'L' Else '' End ST_LIBO, TTTIFN_BANC.PO_INTR  
  From  TTBANC_AGEN  
   
    Inner Join TTBANC_FINA On      
    (TTBANC_AGEN.CO_BANC = TTBANC_FINA.CO_BANC  )   
   
    Inner Join TDBANC_FINA On      
    (TTBANC_AGEN.CO_BANC = TDBANC_FINA.CO_BANC  )   
   
    Left Outer Join TTTIFN_BANC On      
    ( TDBANC_FINA.CO_EMPR = TTTIFN_BANC.CO_EMPR    
   And TDBANC_FINA.CO_BANC = TTTIFN_BANC.CO_BANC  )      
   
   Inner Join TTTIPO_FINA On      
   ( TTTIFN_BANC.CO_TIPO_FINA = TTTIPO_FINA.CO_TIPO_FINA )      
   
    Left Outer Join (   Select CO_EMPR, CO_BANC, CO_TIPO_FINA, IsNull(Sum(IsNull(IM_FINA, 0)), 0) IM_FINA_PARC  
      From TCFINA_BANC  
      Where  TI_SITU = 'APR'   
       Group By CO_EMPR, CO_BANC, CO_TIPO_FINA ) TMRESU_FIBA  On      
    ( TDBANC_FINA.CO_EMPR = TMRESU_FIBA.CO_EMPR    
   And TDBANC_FINA.CO_BANC = TMRESU_FIBA.CO_BANC    
   And TTTIFN_BANC.CO_TIPO_FINA = TMRESU_FIBA.CO_TIPO_FINA   
   And TDBANC_FINA.ST_LINE_CCRE = 'N' )   
  
    Left Outer Join (   Select CO_EMPR, CO_BANC, IsNull(Sum(IsNull(IM_FINA, 0)), 0) IM_FINA_TOTA  
      From TCFINA_BANC  
      Where  TI_SITU = 'APR'   
       Group By CO_EMPR, CO_BANC ) TMRESU_FINA  On      
    ( TDBANC_FINA.CO_EMPR = TMRESU_FINA.CO_EMPR    
   And TDBANC_FINA.CO_BANC = TMRESU_FINA.CO_BANC  
   And TDBANC_FINA.ST_LINE_CCRE = 'S' )   
   
  Where    
   TDBANC_FINA.CO_EMPR = @ISCO_EMPR  
   
 Order by   1, 7  
else  
 Select TMEMPR.CO_EMPR CO_EMPR, TMEMPR.DE_NOMB_CORT DE_EMPR, 'M.N.' SB_MONE, TTBANC_FINA.DE_NOMB_CORT CO_BANC, '' DE_LEAS,   
   Round(TMBANC_MDIS.IM_DISP,0)/1000, Round(IsNull(TMBANC_CHQE.IM_MOVI_GIRA,0),0)/1000 IM_MOVI_GIRA,  
   Round((TMBANC_MDIS.IM_DISP - IsNull(TMBANC_CHQE.IM_MOVI_GIRA,0)),0)/1000 IM_REAL  
 From TMPARA_TESO  
   
    Inner Join   
  (  
  Select TMCNTA_BANC.CO_EMPR CO_EMPR, TMCNTA_BANC.CO_BANC CO_BANC,   
    TMCNTA_BANC.CO_MONE CO_MONE, TMSABA_MENS.AA_BNCO AA_BNCO, TMSABA_MENS.MM_BNCO MM_BNCO,   
    Sum(TMSABA_MENS.IM_SALD_INIC + (TMSABA_MENS.IM_EGRE - TMSABA_MENS.IM_INGR)) IM_DISP  
  From TMCNTA_BANC  
     Inner Join TMSABA_MENS On      
     (TMCNTA_BANC.CO_EMPR = TMSABA_MENS.CO_EMPR And   
   TMCNTA_BANC.CO_BANC = TMSABA_MENS.CO_BANC And   
   TMCNTA_BANC.NU_CNTA_BANC = TMSABA_MENS.NU_CNTA_BANC )  
    
  Group By TMCNTA_BANC.CO_EMPR, TMCNTA_BANC.CO_BANC, TMCNTA_BANC.CO_MONE, TMSABA_MENS.AA_BNCO, TMSABA_MENS.MM_BNCO  
  ) TMBANC_MDIS On  --- Tabla de Saldos  
    (TMPARA_TESO.CO_EMPR = TMBANC_MDIS.CO_EMPR And   
  TMPARA_TESO.CO_MONE_DEFA = TMBANC_MDIS.CO_MONE )  
   
    Inner Join TTBANC_FINA On      
    (TTBANC_FINA.CO_BANC = TMBANC_MDIS.CO_BANC  )   
   
    Left Outer Join   
  (  
  Select TMCNTA_BANC.CO_EMPR CO_EMPR, TMCNTA_BANC.CO_BANC CO_BANC,   
    TMCNTA_BANC.CO_MONE CO_MONE,   
    Sum (TCMOVI_BANC.IM_MOVI) IM_MOVI_GIRA  
  From TMCNTA_BANC  
     Inner Join TCMOVI_BANC On      
     (TMCNTA_BANC.CO_EMPR = TCMOVI_BANC.CO_EMPR And   
   TMCNTA_BANC.CO_BANC = TCMOVI_BANC.CO_BANC And   
   TMCNTA_BANC.NU_CNTA_BANC = TCMOVI_BANC.NU_CNTA_BANC And  
   TCMOVI_BANC.TI_MOVI_BANC = 'E' And  
   TCMOVI_BANC.NU_CHEQ is Not Null  And  
   TCMOVI_BANC.TI_SITU = 'ACT'  And  
   TCMOVI_BANC.FE_CHEQ <=  @IDFE_REPO And --- Fecha de Cheque  
   TCMOVI_BANC.FE_ENTR_CHEQ Is NULL  ) --- Fecha de Entrega O de Cobro  
    
  Group By TMCNTA_BANC.CO_EMPR, TMCNTA_BANC.CO_BANC, TMCNTA_BANC.CO_MONE  
  ) TMBANC_CHQE On   ---- Tabla Cheques Girados  
    (TMPARA_TESO.CO_EMPR = TMBANC_CHQE.CO_EMPR And   
  TTBANC_FINA.CO_BANC = TMBANC_CHQE.CO_BANC And  
  TMPARA_TESO.CO_MONE_DEFA = TMBANC_CHQE.CO_MONE   )  
  
    Inner Join TMEMPR On      
    (TMPARA_TESO.CO_EMPR = TMEMPR.CO_EMPR  )   
   
 Where   
 TMBANC_MDIS.AA_BNCO = @ISAA_BNCO And  
 TMBANC_MDIS.MM_BNCO = @ISMM_BNCO And  
   
    ( ( @ISDE_OPCI_FILT = 'S' And Exists (     
      Select t0.CO_EMPR     
      From #TWFILT_ERBH t0     
      Where TMBANC_MDIS.CO_EMPR = t0.CO_EMPR And    
        TMBANC_MDIS.CO_BANC  = t0.CO_BANC )    
      ) Or      
       ( @ISDE_OPCI_FILT = 'N')      
       )      
UNION All  
 Select TMEMPR.CO_EMPR, TMEMPR.DE_NOMB_CORT, 'M.E.', TTBANC_FINA.DE_NOMB_CORT, '',   
   Round(TMBANC_MDIS.IM_DISP,0)/1000, Round(IsNull(TMBANC_CHQE.IM_MOVI_GIRA,0),0)/1000 IM_MOVI_GIRA,  
   Round((TMBANC_MDIS.IM_DISP - IsNull(TMBANC_CHQE.IM_MOVI_GIRA,0)),0)/1000 IM_REAL  
 From TMPARA_TESO  
   
    Inner Join   
  (  
  Select TMCNTA_BANC.CO_EMPR CO_EMPR, TMCNTA_BANC.CO_BANC CO_BANC,   
    TMCNTA_BANC.CO_MONE CO_MONE, TMSABA_MENS.AA_BNCO AA_BNCO, TMSABA_MENS.MM_BNCO MM_BNCO,   
    Sum(TMSABA_MENS.IM_SALD_INIC + (TMSABA_MENS.IM_EGRE - TMSABA_MENS.IM_INGR)) IM_DISP  
  From TMCNTA_BANC  
     Inner Join TMSABA_MENS On      
     (TMCNTA_BANC.CO_EMPR = TMSABA_MENS.CO_EMPR And   
   TMCNTA_BANC.CO_BANC = TMSABA_MENS.CO_BANC And   
   TMCNTA_BANC.NU_CNTA_BANC = TMSABA_MENS.NU_CNTA_BANC )  
    
  Group By TMCNTA_BANC.CO_EMPR, TMCNTA_BANC.CO_BANC, TMCNTA_BANC.CO_MONE, TMSABA_MENS.AA_BNCO, TMSABA_MENS.MM_BNCO  
  ) TMBANC_MDIS On  --- Tabla de Saldos  
    (TMPARA_TESO.CO_EMPR = TMBANC_MDIS.CO_EMPR And   
  TMPARA_TESO.CO_MONE_EXTR = TMBANC_MDIS.CO_MONE )  
   
    Inner Join TTBANC_FINA On      
    (TTBANC_FINA.CO_BANC = TMBANC_MDIS.CO_BANC  )   
   
    Left Outer Join   
  (  
  Select TMCNTA_BANC.CO_EMPR CO_EMPR, TMCNTA_BANC.CO_BANC CO_BANC,   
    TMCNTA_BANC.CO_MONE CO_MONE,   
    Sum (TCMOVI_BANC.IM_MOVI) IM_MOVI_GIRA  
  From TMCNTA_BANC  
     Inner Join TCMOVI_BANC On      
     (TMCNTA_BANC.CO_EMPR = TCMOVI_BANC.CO_EMPR And   
   TMCNTA_BANC.CO_BANC = TCMOVI_BANC.CO_BANC And   
   TMCNTA_BANC.NU_CNTA_BANC = TCMOVI_BANC.NU_CNTA_BANC And  
   TCMOVI_BANC.TI_MOVI_BANC = 'E' And  
   TCMOVI_BANC.NU_CHEQ is Not Null  And  
   TCMOVI_BANC.TI_SITU = 'ACT'  And  
   TCMOVI_BANC.FE_CHEQ <=  @IDFE_REPO And --- Fecha de Cheque  
   TCMOVI_BANC.FE_ENTR_CHEQ Is NULL  ) --- Fecha de Entrega O de Cobro  
    
  Group By TMCNTA_BANC.CO_EMPR, TMCNTA_BANC.CO_BANC, TMCNTA_BANC.CO_MONE  
  ) TMBANC_CHQE On   ---- Tabla Cheques Girados  
    (TMPARA_TESO.CO_EMPR = TMBANC_CHQE.CO_EMPR And   
  TTBANC_FINA.CO_BANC = TMBANC_CHQE.CO_BANC And  
  TMPARA_TESO.CO_MONE_EXTR = TMBANC_CHQE.CO_MONE   )  
  
    Inner Join TMEMPR On      
    (TMPARA_TESO.CO_EMPR = TMEMPR.CO_EMPR  )   
   
 Where   
 TMBANC_MDIS.AA_BNCO = @ISAA_BNCO And  
 TMBANC_MDIS.MM_BNCO = @ISMM_BNCO And  
   
    ( ( @ISDE_OPCI_FILT = 'S' And Exists (     
      Select t0.CO_EMPR     
      From #TWFILT_ERBH t0     
      Where TMBANC_MDIS.CO_EMPR = t0.CO_EMPR And    
        TMBANC_MDIS.CO_BANC  = t0.CO_BANC )    
      ) Or      
       ( @ISDE_OPCI_FILT = 'N')      
       )      
  
  
 Order by   1, 3, 5  
/***************************************** F I N ************************************************/


GO
